@DATABASE "RevUp Documentation" @AUTHOR "Boris Folgmann" @(C) "(C) 1994-1996 PROXITY SOFTWORKS" @$VER: RevUp.guide 1.4 (8.1.96) @WORDWRAP @INDEX "Index" ########################################################################### @NODE MAIN "RevUp"" @{b}RevUp@{ub} - Amiga Revision Update System Freeware 1994-1996 by @{"PROXITY SOFTWORKS" LINK "PSI/PROXITY SOFTWORKS"} Development by @{"Boris Folgmann" LINK "PSI/Boris Folgmann"} RevUp 1.4 (8.1.96) User Manual @{" Copyrights " LINK COPYRIGHTS} Copyright information. @{" Disclaimer " LINK PSI/DISCLAIMER} Legal stuff. @{" Description " LINK DESCRIPTION} What does it? @{" System requirements " LINK REQUIREMENTS} What do you need to run it? @{" Contents " LINK CONTENTS} Archive contents. @{" Installation " LINK INSTALLATION} How to install. @{" Usage " LINK USAGE} How is it used? @{" History " LINK HISTORY} What's new? @{" Support " LINK PSI/SUPPORT} How to contact us. @{" Update " LINK PSI/UPDATE} Where to get new releases. @{" Credits " LINK PSI/CREDITS} Thanks to some persons. @ENDNODE ########################################################################### @NODE "COPYRIGHTS" "Copyright Information" COPYRIGHTS Unless otherwise noted, all files are Freeware 1994-1996 by @{"PROXITY SOFTWORKS" LINK "PSI/PROXITY SOFTWORKS"} All Rights Reserved. MagicWB 1994 Martin Huttenloher Kickstart and Workbench are Copyright 1985-1996 ESCOM AG @ENDNODE ########################################################################### @NODE "DESCRIPTION" "What does it?" DESCRIPTION o RevUp generates and maintains include and header files with revision information. o Basically RevUp is similar to the developer tool BumpRev, but it offers a lot of additional features. o ANSI-C, Oberon and Assembly language supported. o Multiple dependency files. o Beta count management for beta versions included. o Interactive logfile generation. @ENDNODE ########################################################################### @NODE "REQUIREMENTS" "What do you need to run it?" SYSTEM REQUIREMENTS @{"Kickstart" LINK COPYRIGHTS} 2.04 @{"Workbench" LINK COPYRIGHTS} 2.0 @{"Workbench" LINK COPYRIGHTS} 2.1 for localized DOS error messages. @ENDNODE ########################################################################### @NODE "CONTENTS" "Archive Contents" CONTENTS This software package consists of the following files: @{FG HIGHLIGHT}RevUp@{FG TEXT} The executable shell command. @{FG HIGHLIGHT}RevUp_rev.log@{FG TEXT} RevUp's revision logfile generated by using the @{"LOG" LINK "LOG"} switch. @{FG HIGHLIGHT}RevUp.guide@{FG TEXT} This AmigaGuide document for Multiview. @{FG HIGHLIGHT}PSI@{FG TEXT} @{"Proxity Softworks" LINK "PSI/PROXITY SOFTWORKS"} information text. All icons are part of @{"MagicWB" LINK COPYRIGHTS} and included with permission of the author. @ENDNODE ########################################################################### @NODE "INSTALLATION" "How to install" INSTALLATION Simply copy RevUp to a directory in your path. Place this documentation where you want. For example type: @{fg highlight}copy RevUp to C: copy RevUp.guide to HELP:english/@{fg text} @ENDNODE ########################################################################### @NODE "USAGE" "How is it used?" USAGE Usage: RevUp {} [REV ] [BETA] [C] [ASM] [OBERON] [LOG] [EXTRA] [ENVVAR] [TINY] @{u}Required@{uu} @{" VERSION/N " LINK VERSION} Version number. @{" PROJECTNAME/A " LINK PROJECTNAME} Name of the project. @{" DEPENDENCIES/M " LINK DEPENDENCIES} Files which dates are checked. @{u}Optional@{uu} @{" REV/K/N " LINK REVISION} Explicit revision number. @{" BETA/S " LINK BETA} Generate beta information. @{" C/S " LINK C} Generate C headerfile (default). @{" ASM/S " LINK ASM} Generate Assembly includefile. @{" OBERON/S " LINK OBERON} Generate Oberon definition module. @{" LOG/S " LINK LOG} Interactively add history info to logfile. @{" EXTRA/S " LINK EXTRA} Generate extra information. @{" ENVVAR/S " LINK ENVVAR} Set envvar for archive naming. @{" TINY/S " LINK TINY} Don't print credits. Start RevUp without any arguments to get the above short description. RevUp uses a revision storage file which contains the current revision number. Therefore it's possible to increment the revision number on every invocation of the program. Look at the example smakefile for SuperTool to get an impression how RevUp is used. @{fg highlight}SuperTool: SuperTool.c SCOPTIONS SMAKEFILE @RevUp 1 SuperTool SuperTool.c EXTRA BETA sc SuperTool.c RELEASE: @RevUp 1 SuperTool EXTRA LOG sc SuperTool.c NODEBUG OPT@{fg text} Now have a look at the generated file @{"SuperTool_rev.h" LINK HEADERBETA}. Call @{FG HIGHLIGHT}smake RELEASE @{FG TEXT} to get the file without beta information: @{"SuperTool_rev.h" LINK HEADER}. Note that all definitions from TIME to HOST are only added if @{"EXTRA" LINK EXTRA} is specified. BASENAME is the project name in capital letters, e.g. 'MYTOOL'. Useful for ARexx port or public screen naming. Note that language-sensitive functions are used to convert to upper case if locale.library is present on your system. USER and HOST are imported from the environment variables USERNAME and HOSTNAME which are mentioned in the Amiga User Interface Style Guide. To enable AmiTech's VERSION command to display version information about your program you have to put VERSTAG in your code. Example for SuperTool in C: @{FG HIGHLIGHT}#include "SuperTool_rev.h" const static char VersTag[] = VERSTAG; @{FG TEXT} Example for SuperTool in Assembly language: @{FG HIGHLIGHT} INCLUDE "SuperTool_rev.i" VersTag: VERSTAG @{FG TEXT} @ENDNODE ########################################################################### @NODE "MODULE" (* Oberon definition module generated by RevUp 1.3 *) MODULE SuperToolRev; IMPORT SYSTEM; CONST VERSION - = 1; REVISION - = 1; DATE - = "19.9.95"; VERS - = "SuperTool 1.1"; VSTRING - = "SuperTool 1.1 (19.9.95)\\r\\n"; VERSTAG - = "\\o$VER: SuperTool 1.1 (19.9.95)"; TIME - = "00:30:11"; PRGNAME - = "SuperTool"; BASENAME - = "SUPERTOOL"; VSTR - = "SuperTool 1.1 (19.9.95)"; USER - = "boris" HOST - = "prox" BEGIN IF SYSTEM.ADR (VERSTAG) # NIL THEN END END SuperToolRev. @ENDNODE ########################################################################### @NODE "INCLUDE" ;* Assembly includefile generated by RevUp 1.3 * VERSION EQU 1 REVISION EQU 1 DATE MACRO dc.b '12.7.95' ENDM VERS MACRO dc.b 'SuperTool 1.1' ENDM VSTRING MACRO dc.b 'SuperTool 1.1 (12.7.95)',13,10,0 ENDM VERSTAG MACRO dc.b 0,'$VER: SuperTool 1.1 (12.7.95)',0 ENDM TIME MACRO dc.b '14:57:51' ENDM PRGNAME MACRO dc.b 'SuperTool' ENDM BASENAME MACRO dc.b 'SUPERTOOL' ENDM VSTR MACRO dc.b 'SuperTool 1.1 (12.7.95)' ENDM USER MACRO dc.b 'boris' ENDM HOST MACRO dc.b 'prox' ENDM @ENDNODE ########################################################################### @NODE "HEADER" /* C headerfile generated by RevUp 1.3 */ #define VERSION 1 #define REVISION 1 #define DATE "12.7.95" #define VERS "SuperTool 1.1" #define VSTRING "SuperTool 1.1 (12.7.95)\\r\\n" #define VERSTAG "\\0$VER: SuperTool 1.1 (12.7.95)" #define TIME "14:57:51" #define PRGNAME "SuperTool" #define BASENAME "SUPERTOOL" #define VSTR "SuperTool 1.1 (12.7.95)" #define USER "boris" #define HOST "prox" @ENDNODE ########################################################################### @NODE "MODULEBETA" (* Oberon definition module generated by RevUp 1.3 *) MODULE SuperToolRev; IMPORT SYSTEM; CONST VERSION - = 1; REVISION - = 2; BETA - = 1; DATE - = "19.9.95"; VERS - = "SuperTool 1.2 BETA 1"; VSTRING - = "SuperTool 1.2 BETA 1 (19.9.95)\\r\\n"; VERSTAG - = "\\o$VER: SuperTool 1.2 BETA 1 (19.9.95)"; TIME - = "00:31:26"; PRGNAME - = "SuperTool"; BASENAME - = "SUPERTOOL"; VSTR - = "SuperTool 1.2 BETA 1 (19.9.95)"; USER - = "boris" HOST - = "prox" BEGIN IF SYSTEM.ADR (VERSTAG) # NIL THEN END END SuperToolRev. @ENDNODE ########################################################################### @NODE "INCLUDEBETA" ;* Assembly includefile generated by RevUp 1.3 * VERSION EQU 1 REVISION EQU 2 BETA EQU 1 DATE MACRO dc.b '12.7.95' ENDM VERS MACRO dc.b 'SuperTool 1.2 BETA 1' ENDM VSTRING MACRO dc.b 'SuperTool 1.2 BETA 1 (12.7.95)',13,10,0 ENDM VERSTAG MACRO dc.b 0,'$VER: SuperTool 1.2 BETA 1 (12.7.95)',0 ENDM TIME MACRO dc.b '14:58:29' ENDM PRGNAME MACRO dc.b 'SuperTool' ENDM BASENAME MACRO dc.b 'SUPERTOOL' ENDM VSTR MACRO dc.b 'SuperTool 1.2 BETA 1 (12.7.95)' ENDM USER MACRO dc.b 'boris' ENDM HOST MACRO dc.b 'prox' ENDM @ENDNODE ########################################################################### @NODE "HEADERBETA" /* C headerfile generated by RevUp 1.3 */ #define VERSION 1 #define REVISION 2 #define BETA 1 #define DATE "12.7.95" #define VERS "SuperTool 1.2 BETA 1" #define VSTRING "SuperTool 1.2 BETA 1 (12.7.95)\\r\\n" #define VERSTAG "\\0$VER: SuperTool 1.2 BETA 1 (12.7.95)" #define TIME "14:58:29" #define PRGNAME "SuperTool" #define BASENAME "SUPERTOOL" #define VSTR "SuperTool 1.2 BETA 1 (12.7.95)" #define USER "boris" #define HOST "prox" @ENDNODE ########################################################################### @NODE "VERSION" VERSION/N This needed argument specifies the version number (the number before the dot). Use @{fg highlight}0@{fg text} for alpha versions and @{fg highlight}1@{fg text} for the first release version. You should increase the version number only when major changes and improvements are done. @ENDNODE ########################################################################### @NODE "PROJECTNAME" PROJECTNAME/A This needed argument should be the name of your project. It will be used for the naming of the RevUp revision storage file ('projectname_rev.rev'), the C header file ('projectname_rev.h') and the assembly include file ('projectname_rev.i'). Is is also used for building the version strings found in the header/include files, so keep care of the right capitalisation. @ENDNODE ########################################################################### @NODE "DEPENDENCIES" DEPENDENCIES/M RevUp checks the dates of the dependency files against the revision storage file. Therefore it's possible to update the revision number only if certain parts of the project are changed. @ENDNODE ########################################################################### @NODE "REVISION" REV/K/N Explicitly set the revision to a specific value. Normally RevUp gets the old revision from projectname_rev.rev and increments it by 1. @ENDNODE ########################################################################### @NODE "BETA" BETA/S Enables the beta version count. If BETA is given the first time the revision is incremented as on a normal call. Additonally a beta count storage file is created. The beta count starts at 1 as the revision does. Assume that version is 1 and revision is 1, with BETA specified the header/include file will look like this: @{"SuperTool_rev.h" LINK HEADERBETA}, @{"SuperTool_rev.i" LINK INCLUDEBETA} On every following call with BETA, only the beta count will be incremented, the revision will stay at 2. When the beta stage of your program is finished call RevUp without BETA. The beta count storage file will be deleted and VERS will now look like this: @{FG HIGHLIGHT}#define VERS "SuperTool 1.2"@{FG TEXT} That means all beta information removed. NOTE You should not publicly distribute versions of your program containg a VERSTAG with beta information, because this string does not follow the AmiTech version string standard. Although all your beta testers will be able to correctly display the version information with the current version command (v40.1). HINT Using the beta switch avoids to increment the revision on each compilation, therefore giving shorter revision numbers for your programs public releases. BETA is only defined in the header file if specified in the commandline. So you could easily include additional debugging code like that: @{FG HIGHLIGHT}#ifdef BETA kprintf("Variable x contains: %ld", x); #endif@{FG TEXT} @ENDNODE ########################################################################### @NODE "C" C/S Set this switch to generate a header file for C language. This is the default language. Unless you don't specify @{"ASM" LINK ASM} or @{"OBERON" LINK OBERON} a C headerfile will always be generated. Examples: @{"Revup 1 SuperTool C EXTRA" LINK HEADER}, @{"Revup 1 SuperTool C EXTRA BETA" LINK HEADERBETA} For the old RevUp 1.2 behaviour (always generate C and ASM output): @{FG HIGHLIGHT}Revup 1 SuperTool C ASM@{FG TEXT} @ENDNODE ########################################################################### @NODE "ASM" ASM/S Set this switch to generate an include file for 68k assembly language. This switch disables the default @{"C" LINK C} headerfile generation. Examples: @{"Revup 1 SuperTool ASM EXTRA" LINK INCLUDE}, @{"Revup 1 SuperTool ASM EXTRA BETA" LINK INCLUDEBETA} @ENDNODE ########################################################################### @NODE "OBERON" OBERON/S Set this switch to generate a Oberon definition module. This switch disables the default @{"C" LINK C} headerfile generation. Note that the Oberon module differently from the C and Assembly include files always @{U}defines@{UU} the VersTag variable. Examples: @{"Revup 1 SuperTool OBERON EXTRA" LINK MODULE}, @{"Revup 1 SuperTool OBERON EXTRA BETA" LINK MODULEBETA} @ENDNODE ########################################################################### @NODE "LOG" LOG/S Appends history information to the _rev.log file. The user is prompted for changes information in the shell. Enter them and end with a blank line or EOF (press CTRL and \\). An empty log message does not append the revision header to the log file. WShell users please note that the CNC: display handler has a bug, that causes the line terminated with EOF to be lost. Enter a blank line instead. @ENDNODE ########################################################################### @NODE "ENVVAR" ENVVAR/S Sets an environment variable for naming the archive of your software. Example: @{FG HIGHLIGHT}RevUp 1 SuperTool ENVVAR@{FG TEXT} Sets the envvar SUPERTOOL to SuperTool1_2, if @{"BETA" LINK "BETA"} is specified to SuperTool1_2b1. Now pack your archive like this: @{FG HIGHLIGHT}LhA a $SUPERTOOL SuperTool SuperTool.guide SuperTool.readme@{FG TEXT} @ENDNODE ########################################################################### @NODE "EXTRA" EXTRA/S Adds some extra information to the header/include files which are not generated by BumpRev! I'm thinking about dropping this switch. Contact me if you think there are any reasons why the extra defintions should not be generated. @ENDNODE ########################################################################### @NODE "TINY" TINY/S Supresses printing of the copyright message, therefore giving less output. @ENDNODE ########################################################################### @NODE "HISTORY" "What's new?" HISTORY 1.1 (18.8.94) Release First public release. 1.2 (4.9.94) Release NEW: @{"BETA" LINK BETA} switch enables beta version count. 1.3 (17.11.95) Release NEW: @{"OBERON" LINK OBERON} switch enables Oberon definition module generation. NEW: NOC changed to @{"C" LINK C} (now default language), NOASM changed to @{"ASM" LINK ASM}. NEW: More comprehensive error messages. NEW: @{"LOG" LINK LOG} switch enables interactive logfile generation. NEW: @{"ENVVAR" LINK ENVVAR} switch enables envvar generation. 1.4 (8.1.96) Release FIX: RevUp no longer displays an error message, if file to overwrite didn't already exist. NEW: UserName is now always appended to the log file, even if HostName is not set. NEW: TIME to logfile. VERSTAG to stdout. Empty log messages are now possible. @ENDNODE @node Index "Index" @{b} A@{ub} @{" Archive Contents " Link CONTENTS} @{" ASM " Link ASM} @{b} B@{ub} @{" BETA " Link BETA} @{b} C@{ub} @{" C " Link C} @{" Copyright Information " Link COPYRIGHTS} @{b} D@{ub} @{" DEPENDENCIES " Link DEPENDENCIES} @{b} E@{ub} @{" ENVVAR " Link ENVVAR} @{" EXTRA " Link EXTRA} @{b} H@{ub} @{" HEADER " Link HEADER} @{" HEADERBETA " Link HEADERBETA} @{" How is it used? " Link USAGE} @{" How to install " Link INSTALLATION} @{b} I@{ub} @{" INCLUDE " Link INCLUDE} @{" INCLUDEBETA " Link INCLUDEBETA} @{b} L@{ub} @{" LOG " Link LOG} @{b} M@{ub} @{" MODULE " Link MODULE} @{" MODULEBETA " Link MODULEBETA} @{b} O@{ub} @{" OBERON " Link OBERON} @{b} P@{ub} @{" PROJECTNAME " Link PROJECTNAME} @{b} R@{ub} @{" REVISION " Link REVISION} @{" RevUp " Link MAIN} @{b} T@{ub} @{" TINY " Link TINY} @{b} V@{ub} @{" VERSION " Link VERSION} @{b} W@{ub} @{" What do you need to run it?" Link REQUIREMENTS} @{" What does it? " Link DESCRIPTION} @{" What's new? " Link HISTORY} @endnode